#ifndef VARIABLE_HPP_INCLUDED
#define VARIABLE_HPP_INCLUDED

#include <string>
#include <vector>

class value
{
    public:
        value() {;}
        value(double d) {type = real; real_value = d;}
        value(std::string s) {type = str; string_value = s;}

        const static uint_fast16_t real = 0;
        const static uint_fast16_t str = 1;
        uint_fast16_t type;
        double real_value;
        std::string string_value;
};


class variable
{
    public:
        std::string name;
        value val;
};


class variable_container
{
    public:
        variable_container() {list_of_variables.reserve(40);}
        void set(std::string name, value);
        value get(std::string name);
    private:
        std::vector<variable> list_of_variables;
};



#endif // VARIABLE_HPP_INCLUDED
